﻿#include "snake.h"

// 函数：改变控制台窗口的大小
static void SetConsoleWindowSize(int cols, int lines)
{
    // 获取控制台输出句柄
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

    // 定义一个SMALL_RECT结构来指定新的窗口大小
    SMALL_RECT consoleWindow;
    consoleWindow.Left = 0;
    consoleWindow.Top = 0;
    consoleWindow.Right = cols - 1; // 列数减1，因为列索引从0开始
    consoleWindow.Bottom = lines - 1; // 行数减1，因为行索引从0开始

    //// 获取当前的控制台屏幕缓冲区信息
    //CONSOLE_SCREEN_BUFFER_INFO csbi;
    //if (!GetConsoleScreenBufferInfo(hConsole, &csbi)) 
    //{
    //    // 如果获取信息失败，打印错误信息并退出
    //    printf("获取控制台屏幕缓冲区信息失败！\n");
    //    return;
    //}

    // 设置控制台窗口的大小
    if (!SetConsoleWindowInfo(hConsole, TRUE, &consoleWindow))
    {
        // 如果设置窗口大小失败，打印错误信息
        printf("设置控制台窗口大小失败！\n");
        return;
    }

    // 设置控制台屏幕缓冲区的大小
    COORD bufferSize;
    bufferSize.X = cols;
    bufferSize.Y = lines;
    if (!SetConsoleScreenBufferSize(hConsole, bufferSize))
    {
        // 如果设置屏幕缓冲区大小失败，打印错误信息
        printf("设置控制台屏幕缓冲区大小失败！\n");
        return;
    }
}
void SetConsoleCursorPos(short x,short y)
{
    COORD position = { x,y };
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), position);
}

static void SetConsoleWindowTitle(const wchar_t* title)
{
    SetConsoleTitle(title);
}
void SetConsoleWindow(const wchar_t* title, int cols, int lines)
{
    SetConsoleWindowTitle(title);
    SetConsoleWindowSize(cols, lines);
}

void HiddenCursor()
{
    //获取输出窗口句柄
	HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE);
    //
	CONSOLE_CURSOR_INFO cursor;
    //获取控制台光标信息
	GetConsoleCursorInfo(houtput, &cursor);
    //改变控制台光标可见性为false
	cursor.bVisible = false;
    //设置控制台光标信息
	SetConsoleCursorInfo(houtput, &cursor);
}

void WelcomeToGame()
{
    SetConsoleCursorPos(40,14);
    printf("欢迎来到贪吃蛇小游戏");
    SetConsoleCursorPos(41, 20);
    system("pause");
    
}

void GameInit(pSnake psnake)
{
	//0、光标隐藏
    SetConsoleWindow(L"贪吃蛇", 100, 30);
	HiddenCursor();
	//1、打印欢迎界面
    WelcomeToGame();
	//2、功能介绍
	//3、绘制地图
	//4、创建蛇
	//5、创建食物
	//6、设置游戏相关信息

    //printf("初始化完毕\n");
}
void GameRun()
{
    while (1)
    {

    }
}